package com.rainbow.common.core.valid;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.ConstraintValidatorContext;

/**
 * 通用验证处理器
 * @author 付为地
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public abstract class AbstractValidHandler {

    /**
     * 字段是否必填
     */
    protected boolean required;

    /**
     * 初始化待验证参数全部范围
     */
    protected String[] initialize;

    /**
     * 具体校验处理
     * @param value 参数值
     * @param context 验证上下文
     * @return 校验结果
     */
    protected abstract boolean isValid(String value, ConstraintValidatorContext context);
}
